package org.agent.aigccore.basic.aop;

import org.agent.aigccore.basic.enums.LogLevel;

import java.lang.annotation.*;

/**
 * 单一入口操作日志注解。
 * 使用复合事件 {@link OpsEvent} 消除魔法值，并通过可选 level 覆盖默认级别。
 * 仅保留布尔型开关以控制参数与返回值记录。
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface OpLog {
    // 单一入口：复合事件
    OpsEvent event();

    // 可选覆盖默认级别（默认取事件的 defaultLevel）
    LogLevel level() default LogLevel.INFO;

    // 记录开关
    boolean logArgs() default true;
    boolean logResult() default true;
}




